# 定义项目配置信息

import os
import logging
import time
from logging.handlers import TimedRotatingFileHandler

# 设置变量接收项目根目录路径
BASE_DIR = os.path.dirname(__file__)
# 打印路径
print(BASE_DIR)
FMT_PATH = time.strftime('%Y-%m-%d--%H-%M-%S', time.localtime(time.time()))  # 设置变量格式化时间


def get_logger():
    logger = logging.getLogger()
    # 级别
    logger.setLevel(logging.INFO)
    # 1. logger 日志器  日志的入口

    # 2. handler  处理器 设置日志输出的位置

    # 或者
    # from logging import handlers
    # handlers.TimedRotatingFileHandler
    # filename,     文件名 日志的文件名
    # when='h',      间隔什么时间 生产一个文件      单位
    # S - Seconds   秒
    # M - Minutes   分钟
    # H - Hours     小时
    # D - Days      天
    # interval=1,       间隔时间
    #         总体的意思是    每间隔 interval when 例如  间隔 2 s
    # backupCount=0,        日志文件 保留的数量
    # encoding=None         编码格式
    log_file = os.path.join(BASE_DIR, 'log', 'DAY.log')
    file = TimedRotatingFileHandler(log_file,
                                    when='D',
                                    interval=1,
                                    backupCount=3,
                                    encoding='utf-8')
    console = logging.StreamHandler()
    # 3. formatter 格式器 设置日志的格式
    fmt = '%(asctime)s--%(filename)s-%(lineno)d---------%(message)s'
    formatter = logging.Formatter(fmt)

    # 4. 给我们的处理器 设置 格式器
    console.setFormatter(formatter)
    file.setFormatter(formatter)

    # 5. 日志器 添加 处理器

    logger.addHandler(file)
    logger.addHandler(console)

    # while True:
    #     logger.error('abc')
    # 返回日志器
    return logger


# 实例化防止重复打印
log = get_logger()

if __name__ == '__main__':
    log.info('1111111')
